package com.geline.mybatisplus.annotation;

import java.lang.annotation.*;

/**
 * 在子表中定义提取主表信息
 * @ExtractTable(value="主表A", foreignKey="子表中的外键", condition="orderType == 'CG' and amount > 100", remark="说明")
 * @ExtractTable(value="主表B", foreignKey="子表中的外键", condition="orderType == 'XS' && amount <= 100", remark="说明")
 * @ExtractTable(value="主表C", foreignKey="子表中的外键", autoFill=false)
 *
 * @author mx
 * @date 2025/8/24
 */
@Repeatable(ExtractTables.class)
@Documented
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface ExtractTable {

    //主表名
    String value();

    //子表中的外键
    String foreignKey();

    //where过滤条件："orderType='CG' && amount <= 100"
    String condition() default "";

    //是否自动填充主表数据 @ExtractKey,@ExtractCount,@ExtractSum
    boolean autoFill() default true;

    String remark() default "";
}
